void printAddressStructures(struct addrinfo *addr) { int count = 0; while(addr) { DBG("Address %d:",count++); DBGX(" "); switch(addr->ai_family) { case AF_INET: DBGX("IPv4"); break; case AF_INET6: DBGX("IPv6"); break; default: DBGX("Unknown address family"); break; } switch(addr->ai_socktype) { case SOCK_DGRAM: DBGX(", UDP"); break; case SOCK_STREAM: DBGX(", TCP"); break; case SOCK_RAW: DBGX(", RAW"); break; default: DBGX(", Unknown socket type."); break; } // print out address host and port struct sockaddr_in *v4Addr; struct sockaddr_in6 *v6Addr; char straddr[INET6_ADDRSTRLEN]; switch(addr->ai_family) { case AF_INET: v4Addr = (struct sockaddr_in*)addr->ai_addr; DBGX(", %s:%d",inet_ntoa(v4Addr->sin_addr),ntohs(v4Addr->sin_port)); break; case AF_INET6: v6Addr = (struct sockaddr_in6*)addr->ai_addr; DBGX(", %s:%d",inet_ntop(AF_INET6,&v6Addr->sin6_addr,straddr,sizeof(straddr)),ntohs(v6Addr->sin6_port)); break; } DBG(" "); addr = addr->ai_next; } }
void props_to_sql(struct conn *conn, mbag_t mb, const char *mid) { // XXX for the now we use just the IP adress as ID char *wtp_id = sock_addr2str(&conn->addr); // cw_dbg(DBG_X, "WTPID: %s\n", wtp_id); MAVLITER_DEFINE(it, mb); mavliter_foreach(&it) { mbag_item_t *i = mavliter_get(&it); const struct cw_itemdef *cwi; if (!mid){ cwi = cw_itemdef_get(conn->actions->items, i->id, NULL); } else{ cwi = cw_itemdef_get(conn->actions->items, mid,i->id); } if (!cwi){ cw_dbg(DBG_WARN,"No definition for item %s found.",i->id); continue; } if (i->type==MBAG_MBAG){ if (mid){ cw_log(LOG_ERROR,"Depth for %s",i->id); continue; } props_to_sql(conn,i->data,i->id); continue; } DBGX("SQL ID %s,%s", i->id, cwi->id); DBGX("SQL Type %s,Typecwd %s", i->type->name, cwi->type->name); // printf("%s != %s ?\n",i->type->name,cwi->type->name); char str[256]; if (i->type->to_str) { i->type->to_str(i, str); db_put_wtp_prop(wtp_id, cwi->id, cwi->sub_id, str); } else { cw_log(LOG_ERR, "Can't converto to str for %s", cwi->id, cwi->sub_id); } } }
int Comdec::checkError(int errorCode, streng msg) { if (errorCode != Z_OK) { if (errorCode == Z_STREAM_END) { DBGX("Z_STREAM_END"); return errorCode; } throw ComdecException(formatString("Comdec error '%s' (%i) in %s.", "", errorCode, msg.c_str())); } return errorCode; }
void config_to_sql(struct conn *conn) { // XXX for the moment we use just the IP adress as ID char *wtp_id = sock_addr2str(&conn->addr); // cw_dbg(DBG_X, "WTPID: %s\n", wtp_id); MAVLITER_DEFINE(it, conn->incomming); mavliter_foreach(&it) { mbag_item_t *i = mavliter_get(&it); const struct cw_itemdef *cwi = cw_itemdef_get(conn->actions->items, i->id, NULL); cw_dbg(DBG_X,"ID GOT: %s",i->id); if (cwi) { DBGX("SQL ID %s,%s", i->id, cwi->id); DBGX("SQL Type %s,Typecwd %s", i->type->name, cwi->type->name); // printf("%s != %s ?\n",i->type->name,cwi->type->name); char str[256]; if (i->type->to_str) { i->type->to_str(i, str); db_put_wtp_prop(wtp_id, cwi->id, cwi->sub_id, str); } else { cw_log(LOG_ERR, "Can't converto to str for %s", cwi->id, cwi->sub_id); } } else { // DBGX("ID %d",i->id); } } }
void os2Printers::RefreshPrintQueue() { DBGX(); ULONG newQueueCount = 0; ULONG TotalQueues = 0; ULONG MemNeeded = 0; SPLERR rc; rc = SplEnumQueue(0, 3, 0, 0, &newQueueCount, &TotalQueues, &MemNeeded, 0); PRQINFO3* pPQI3Buf = (PRQINFO3*)malloc(MemNeeded); rc = SplEnumQueue(0, 3, pPQI3Buf, MemNeeded, &newQueueCount, &TotalQueues, &MemNeeded, 0); if (newQueueCount > MAX_PRINT_QUEUES) newQueueCount = MAX_PRINT_QUEUES; os2PrintQ* tmpBuf[MAX_PRINT_QUEUES]; ULONG defaultQueue = 0; for (ULONG cnt = 0; cnt < newQueueCount; cnt++) { if (pPQI3Buf[cnt].fsType & PRQ3_TYPE_APPDEFAULT) defaultQueue = cnt; BOOL found = FALSE; for (ULONG index = 0; index < mQueueCount && !found; index++) { // Compare printer from requeried list with what's already in // Mozilla's printer list(mPQBuf). If printer is already there, // use current properties; otherwise create a new printer in list. if (mPQBuf[index] != 0) { if (!strcmp(pPQI3Buf[cnt].pszPrinters, mPQBuf[index]->PrinterName()) && !strcmp(pPQI3Buf[cnt].pszDriverName, mPQBuf[index]->FullName())) { found = TRUE; tmpBuf[cnt] = mPQBuf[index]; mPQBuf[index] = 0; } } } if (!found) tmpBuf[cnt] = new os2PrintQ(&pPQI3Buf[cnt]); } for (ULONG index = 0; index < newQueueCount; index++) { if (mPQBuf[index] != 0) delete(mPQBuf[index]); mPQBuf[index] = tmpBuf[index]; } if (mQueueCount > newQueueCount) for (ULONG index = newQueueCount; index < mQueueCount; index++) if (mPQBuf[index] != 0) delete(mPQBuf[index]); mQueueCount = newQueueCount; // move the entry for the default printer to index 0 (if necessary) if (defaultQueue > 0) { os2PrintQ* temp = mPQBuf[0]; mPQBuf[0] = mPQBuf[defaultQueue]; mPQBuf[defaultQueue] = temp; } free(pPQI3Buf); }