static void raw_send(serserv_data_t *si, unsigned char *data, unsigned int len) { if (si->sysinfo->debug & DEBUG_RAW_MSG) debug_log_raw_msg(si->sysinfo, data, len, "Raw serial send:"); si->send_out(si, data, len); }
static void lan_data_ready(int lan_fd, void *cb_data, os_hnd_fd_id_t *id) { lanserv_data_t *lan = cb_data; int len; sim_addr_t l; unsigned char msgd[256]; l.addr_len = sizeof(l.addr); len = recvfrom(lan_fd, msgd, sizeof(msgd), 0, (struct sockaddr *) &(l.addr), &(l.addr_len)); if (len < 0) { if (errno != EINTR) { perror("Error receiving message"); exit(1); } goto out; } l.xmit_fd = lan_fd; if (lan->sysinfo->debug & DEBUG_RAW_MSG) { debug_log_raw_msg(lan->sysinfo, (void *) &l.addr, l.addr_len, "Raw LAN receive from:"); debug_log_raw_msg(lan->sysinfo, msgd, len, " Receive message:"); } if (len < 4) goto out; if (msgd[0] != 6) goto out; /* Invalid version */ /* Check the message class. */ switch (msgd[3]) { case 6: handle_asf(lan, msgd, len, &l, sizeof(l)); break; case 7: ipmi_handle_lan_msg(lan, msgd, len, &l, sizeof(l)); break; } out: return; }