Example #1
0
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;
   }
}
Example #2
0
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);

		}

	}
}
Example #3
0
    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;
    }
Example #4
0
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);

		}

	}
}
Example #5
0
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);
}