int Message_Unit::process_client_buffer(Block_Buffer &buf) { msg_tick_ = Time_Value::gettimeofday(); int cid = 0; uint32_t len = 0; uint32_t msg_id = 0; uint32_t serial_cipher = 0; uint32_t msg_time_cipher = 0; if (buf.read_int32(cid) || buf.read_uint32(len) || buf.read_uint32(msg_id) || buf.read_uint32(serial_cipher) || buf.read_uint32(msg_time_cipher)) { LOG_USER("deserialize error, cid:%d len:%d msg_id:%d", cid, len, msg_id); monitor()->close_client_by_cid(cid, Time_Value(2), 10000101); return -1; } process_client_msg(msg_id, cid, buf, serial_cipher, msg_time_cipher); count_process_time(msg_id); return 0; }
void on_client_message(EV_P_ server_ctx_t *srv_ctx, client_ctx_t *cli_ctx, char *msg, size_t msg_len) { char *unbase_msg = base64_decode(msg, msg_len); if (unbase_msg) { process_client_msg(loop, srv_ctx, cli_ctx, unbase_msg); free(unbase_msg); } }
static GdkFilterReturn panel_event_filter(GdkXEvent *xevent, GdkEvent *event, gpointer not_used) { Atom at; Window win; XEvent *ev = (XEvent *) xevent; ENTER; DBG("win = 0x%x\n", ev->xproperty.window); if (ev->type != PropertyNotify ) { /* private client message from lxpanelctl */ if( ev->type == ClientMessage && ev->xproperty.atom == a_LXPANEL_CMD ) { process_client_msg( (XClientMessageEvent*)ev ); } else if( ev->type == DestroyNotify ) { fb_ev_emit_destroy( fbev, ((XDestroyWindowEvent*)ev)->window ); } RET(GDK_FILTER_CONTINUE); } at = ev->xproperty.atom; win = ev->xproperty.window; if (win == GDK_ROOT_WINDOW()) { if (at == a_NET_CLIENT_LIST) { fb_ev_emit(fbev, EV_CLIENT_LIST); } else if (at == a_NET_CURRENT_DESKTOP) { GSList* l; for( l = all_panels; l; l = l->next ) ((LXPanel*)l->data)->priv->curdesk = get_net_current_desktop(); fb_ev_emit(fbev, EV_CURRENT_DESKTOP); } else if (at == a_NET_NUMBER_OF_DESKTOPS) { GSList* l; for( l = all_panels; l; l = l->next ) ((LXPanel*)l->data)->priv->desknum = get_net_number_of_desktops(); fb_ev_emit(fbev, EV_NUMBER_OF_DESKTOPS); } else if (at == a_NET_DESKTOP_NAMES) { fb_ev_emit(fbev, EV_DESKTOP_NAMES); } else if (at == a_NET_ACTIVE_WINDOW) { fb_ev_emit(fbev, EV_ACTIVE_WINDOW ); } else if (at == a_NET_CLIENT_LIST_STACKING) { fb_ev_emit(fbev, EV_CLIENT_LIST_STACKING); } else if (at == a_XROOTPMAP_ID) { GSList* l; for( l = all_panels; l; l = l->next ) _panel_queue_update_background((LXPanel*)l->data); } else return GDK_FILTER_CONTINUE; return GDK_FILTER_REMOVE; } return GDK_FILTER_CONTINUE; }