libmonetra.c:56:  conn->conn_method=-1;
libmonetra.c:57:  conn->port=-1;
libmonetra.c:58:  conn->ptr=-1;
libmonetra.c:59:  conn->timeout=-1;
libmonetra.c:60:  conn->blocking=0;
libmonetra.c:61:  conn->status=0;
libmonetra.c:62:  conn->verifyconn=1;
libmonetra.c:63:  conn->do_debug=0;
libmonetra.c:64:  conn->verifyssl=0;
libmonetra.c:65:  conn->max_conn_time=5;
libmonetra.c:66:  conn->inbuf=NULL;
libmonetra.c:67:  conn->inbuf_cnt=0;
libmonetra.c:68:  conn->inbuf_alloc=0;
libmonetra.c:69:  conn->outbuf=NULL;
libmonetra.c:70:  conn->outbuf_cnt=0;
libmonetra.c:71:  conn->outbuf_alloc=0;
libmonetra.c:72:  conn->error_text=NULL;
libmonetra.c:74:  conn->ssl=NULL;
libmonetra.c:75:  conn->server_cert=NULL;
libmonetra.c:78:  conn->outstanding_auths=0;
libmonetra.c:79:  conn->queue_length=0;
libmonetra.c:80:  conn->queue=NULL;
libmonetra.c:81:  conn->mutexreg=NULL;
libmonetra.c:82:  conn->mutexlock=NULL;
libmonetra.c:83:  conn->mutexunlock=NULL;
libmonetra.c:84:  conn->mutexunreg=NULL;
libmonetra.c:85:  conn->mutex=NULL;
libmonetra.c:87:  memset(conn->location, 0, 250);
libmonetra.c:93:	conn->mutexreg=reg;
libmonetra.c:100:	conn->mutexunreg=reg;
libmonetra.c:107:	conn->mutexlock=reg;
libmonetra.c:114:	conn->mutexunlock=reg;
libmonetra.c:121:	if (conn->mutexreg == NULL || conn->mutexunreg == NULL || conn->mutexlock == NULL || conn->mutexunlock == NULL) {
libmonetra.c:125:	if (conn->mutex == NULL) return(0);
libmonetra.c:132:  conn->blocking=tf;
libmonetra.c:139:  conn->timeout=timeout;
libmonetra.c:153:  strncpy(conn->location, df_location,250);
libmonetra.c:154:  conn->conn_method=M_FILE;
libmonetra.c:155:  conn->status=M_CONNECTED;
libmonetra.c:168:  strncpy(conn->location, host,250);
libmonetra.c:170:  conn->port=port;
libmonetra.c:171:  conn->conn_method=M_SOCKETS;
libmonetra.c:215:  strncpy(conn->location, host, 250);
libmonetra.c:220:  conn->port=port;
libmonetra.c:221:  conn->conn_method=M_SSL;
libmonetra.c:232:  conn->verifyconn=tf;
libmonetra.c:238:  conn->verifyssl=tf;
libmonetra.c:248:  if (conn->conn_method == M_FILE) {
libmonetra.c:251:  } else if (conn->conn_method == M_SOCKETS) {
libmonetra.c:252:    conn->ptr=M_ip_connect(myconn);
libmonetra.c:253:    if (conn->ptr == -1) {
libmonetra.c:257:  } else if (conn->conn_method == M_SSL) {
libmonetra.c:265:       conn->ptr=M_ip_connect(myconn);
libmonetra.c:266:       if (conn->ptr == -1) {
libmonetra.c:269:       conn->ssl=SSL_new(client_ctx);
libmonetra.c:270:       if (conn->ssl == NULL) {
libmonetra.c:274:       err=SSL_set_fd(conn->ssl, conn->ptr);
libmonetra.c:279:       if (SSL_connect(conn->ssl) != 1) {
libmonetra.c:280:	  SSL_free(conn->ssl);
libmonetra.c:281:          conn->ssl = NULL;
libmonetra.c:282:          M_CloseSocket(conn->ptr);
libmonetra.c:283:          conn->ptr = -1;
libmonetra.c:293:     conn->server_cert = SSL_get_peer_certificate(conn->ssl);
libmonetra.c:294:     //printf("Server Certificate subject: %s\r\n", X509_NAME_oneline(X509_get_subject_name((X509 *)conn->server_cert),0,0));
libmonetra.c:295:    // printf("Server Certificate issuer: %s\r\n", X509_NAME_oneline(X509_get_issuer_name((X509 *)conn->server_cert),0,0));
libmonetra.c:297:     if (!conn->server_cert || (conn->verifyssl && (err=SSL_get_verify_result(conn->ssl)) != X509_V_OK)) {  // SSL Certificate check failed
libmonetra.c:299:       if (conn->ptr != -1)
libmonetra.c:300:         M_CloseSocket(conn->ptr);
libmonetra.c:301:       conn->ptr=-1;
libmonetra.c:302:       SSL_free((SSL *)conn->ssl);
libmonetra.c:303:       conn->ssl = NULL;
libmonetra.c:309:  conn->status = M_CONNECTED;
libmonetra.c:311:  if ((conn->conn_method == M_SOCKETS || conn->conn_method == M_SSL) && conn->verifyconn) {
libmonetra.c:314:      if (conn->ptr != -1)
libmonetra.c:315:         M_CloseSocket(conn->ptr);
libmonetra.c:316:       conn->ptr=-1;
libmonetra.c:318:       if (conn->conn_method == M_SSL)
libmonetra.c:319:         SSL_free(conn->ssl);
libmonetra.c:320:       conn->ssl = NULL;
libmonetra.c:322:      conn->status=M_DISCONNECTED;
libmonetra.c:327:  conn->status=M_CONNECTED;
libmonetra.c:334:  conn->max_conn_time=maxtime;
libmonetra.c:340:  return(conn->error_text);
libmonetra.c:351:  while (conn->queue != NULL) {
libmonetra.c:352:  	M_DeleteTrans(myconn, (long)conn->queue);
libmonetra.c:356:  if (conn->conn_method == M_SSL) {
libmonetra.c:357:    if (conn->ssl != NULL) {
libmonetra.c:358:      SSL_shutdown(conn->ssl);
libmonetra.c:359:      SSL_free((SSL *)conn->ssl);
libmonetra.c:362:  conn->ssl = NULL;
libmonetra.c:367:  conn->conn_method=-1;
libmonetra.c:368:  conn->port=-1;
libmonetra.c:370:  if (conn->ptr != -1)
libmonetra.c:371:    M_CloseSocket(conn->ptr);
libmonetra.c:373:  conn->ptr=-1;
libmonetra.c:374:  if (conn->inbuf != NULL)
libmonetra.c:375:    free(conn->inbuf);
libmonetra.c:376:  if (conn->outbuf != NULL)
libmonetra.c:377:    free(conn->outbuf);
libmonetra.c:378:  if (conn->error_text != NULL)
libmonetra.c:379:    free(conn->error_text);
libmonetra.c:380:  conn->inbuf_cnt=0;
libmonetra.c:381:  conn->inbuf_alloc=0;
libmonetra.c:382:  conn->outbuf_cnt=0;
libmonetra.c:383:  conn->outbuf_alloc=0;
libmonetra.c:384:  conn->error_text=NULL;
libmonetra.c:385:  conn->inbuf=NULL;
libmonetra.c:386:  conn->outbuf=NULL;
libmonetra.c:387:  conn->timeout=0;
libmonetra.c:388:  conn->status=0;
libmonetra.c:389:  conn->blocking=0;
libmonetra.c:390:  conn->verifyssl=0;
libmonetra.c:391:  conn->verifyconn=0;
libmonetra.c:392:  conn->max_conn_time=5;
libmonetra.c:393:  conn->outstanding_auths=0;
libmonetra.c:394:  conn->queue_length=0;
libmonetra.c:395:  if (conn->queue != NULL)
libmonetra.c:396:    free(conn->queue);
libmonetra.c:397:  conn->queue=NULL;
libmonetra.c:410:  if (conn->status == M_DISCONNECTED) {
libmonetra.c:415:  if (conn->conn_method == M_FILE) {
libmonetra.c:417:  } else if (conn->conn_method == M_SOCKETS || conn->conn_method==M_SSL) {
libmonetra.c:422:      M_CloseSocket(conn->ptr);
libmonetra.c:423:      conn->ptr=-1;
libmonetra.c:425:      if (conn->conn_method == M_SSL) {
libmonetra.c:426:        SSL_free((SSL *)conn->ssl);
libmonetra.c:427:        conn->ssl = NULL;
libmonetra.c:431:      conn->status=M_DISCONNECTED;
libmonetra.c:445:  if (conn->conn_method == M_FILE) {
libmonetra.c:449:    if (conn->outbuf_cnt == 0) ret=1;
libmonetra.c:517:  conn->outstanding_auths--;
libmonetra.c:521:  base=conn->queue;
libmonetra.c:524:  	conn->queue=NULL;
libmonetra.c:527:  	conn->queue=next;
libmonetra.c:553:  if (conn->timeout > 0) {
libmonetra.c:554:    M_snprintf(timeout, 20, "%ld", conn->timeout);
libmonetra.c:583:    conn->outstanding_auths++;
libmonetra.c:586:    if (conn->blocking) {
libmonetra.c:1114:  auths=conn->outstanding_auths;
libmonetra.c:1136:	ptr=conn->queue;
libmonetra.c:1141:		if (ptr == conn->queue) break;
libmonetra.c:1147:		ptr=conn->queue;
libmonetra.c:1153:			if (ptr == conn->queue) break;
libmonetra_file.c:89:  ptr=conn->queue;
libmonetra_file.c:92:      strcpy(filename, conn->location);
libmonetra_file.c:124:    if (ptr == conn->queue) break;
libmonetra_file.c:141:  files=M_ReturnFiles(&filenames, conn->location);
libmonetra_file.c:156:    strcpy(filename, conn->location);
libmonetra_file.c:192:   strcpy(filename, conn->location);
libmonetra_locking.c:16:	if (conn->mutexreg != NULL) {
libmonetra_locking.c:17:		conn->mutex=(*(conn->mutexreg))();
libmonetra_locking.c:24:	if (conn->mutex != NULL && conn->mutexunreg != NULL) {
libmonetra_locking.c:25:		(*(conn->mutexunreg))(conn->mutex);
libmonetra_locking.c:26:		conn->mutex=NULL;
libmonetra_locking.c:33:	if (conn->mutex != NULL && conn->mutexlock != NULL) {
libmonetra_locking.c:34:		(*(conn->mutexlock))(conn->mutex);
libmonetra_locking.c:41:	if (conn->mutex != NULL && conn->mutexlock != NULL) {
libmonetra_locking.c:42:		(*(conn->mutexlock))(conn->mutex);
libmonetra_misc.c:139:    if (conn->error_text != NULL)
libmonetra_misc.c:140:      free(conn->error_text);
libmonetra_misc.c:141:    conn->error_text=NULL;
libmonetra_misc.c:142:    conn->error_text=strdup(error);
libmonetra_sockets.c:66:  if (!conn->max_conn_time) { // Blocking mode, let OS decide when to stop
libmonetra_sockets.c:94:      timeout.tv_sec=conn->max_conn_time;
libmonetra_sockets.c:195:  peer.sin_port = htons(conn->port);
libmonetra_sockets.c:197:  len=M_IP_GetAddr(conn->location, &addr);
libmonetra_sockets.c:202:  } else if (strcasecmp(conn->location, "localhost") == 0) {
libmonetra_sockets.c:207:    peer.sin_addr.s_addr = inet_addr(conn->location);
libmonetra_sockets.c:233:  blocking=conn->blocking;
libmonetra_sockets.c:322:	if (conn->do_debug) {
libmonetra_sockets.c:326:	if (conn->do_debug && fp != NULL) {
libmonetra_sockets.c:330:	while (M_CheckRead(conn->ptr, 100)
libmonetra_sockets.c:332:		|| ((conn->conn_method == M_SSL) && (SSL_pending((SSL *)conn->ssl)))
libmonetra_sockets.c:336:		if (conn->conn_method == M_SOCKETS) {
libmonetra_sockets.c:337:			bytes_read=M_read(conn->ptr, temp_buffer, IP_tempbuf_size);
libmonetra_sockets.c:338:		} else if (conn->conn_method == M_SSL) {
libmonetra_sockets.c:340:			bytes_read=SSL_read((SSL *)conn->ssl, temp_buffer, IP_tempbuf_size);
libmonetra_sockets.c:348:		if (conn->do_debug && fp != NULL) {
libmonetra_sockets.c:359:		while (conn->inbuf_alloc < (conn->inbuf_cnt + bytes_read + 1)) {
libmonetra_sockets.c:360:			conn->inbuf=(char *)realloc(conn->inbuf, conn->inbuf_alloc + IP_BLOCK_SIZE);
libmonetra_sockets.c:361:			memset(conn->inbuf+conn->inbuf_cnt, 0, IP_BLOCK_SIZE);
libmonetra_sockets.c:362:			conn->inbuf_alloc+=IP_BLOCK_SIZE;
libmonetra_sockets.c:364:		memcpy(conn->inbuf+conn->inbuf_cnt, temp_buffer, bytes_read);
libmonetra_sockets.c:365:		conn->inbuf_cnt+=bytes_read;
libmonetra_sockets.c:366:		conn->inbuf[conn->inbuf_cnt]=0;
libmonetra_sockets.c:375:	if (conn->do_debug && fp != NULL) {
libmonetra_sockets.c:380:	if (status && conn->outbuf_cnt != 0) {
libmonetra_sockets.c:381:		if (M_CheckWrite(conn->ptr, 100)) {
libmonetra_sockets.c:382:			if (conn->conn_method == M_SOCKETS) {
libmonetra_sockets.c:383:				bytes_written=M_write(conn->ptr, conn->outbuf, conn->outbuf_cnt);
libmonetra_sockets.c:384:			} else if (conn->conn_method == M_SSL) {
libmonetra_sockets.c:386:				bytes_written=SSL_write((SSL *)conn->ssl, conn->outbuf, conn->outbuf_cnt);
libmonetra_sockets.c:393:			if (conn->do_debug && fp != NULL) {
libmonetra_sockets.c:394:				fprintf(fp, "Wrote %d bytes: %s\n", strlen(conn->outbuf), conn->outbuf);
libmonetra_sockets.c:397:			if (bytes_written < conn->outbuf_cnt) {
libmonetra_sockets.c:398:				memmove(conn->outbuf, conn->outbuf+bytes_written, conn->outbuf_cnt-bytes_written);
libmonetra_sockets.c:399:				conn->outbuf_cnt-=bytes_written;
libmonetra_sockets.c:400:				conn->outbuf[conn->outbuf_cnt]=0;
libmonetra_sockets.c:402:				free(conn->outbuf); conn->outbuf=NULL;
libmonetra_sockets.c:403:				conn->outbuf_cnt=0;
libmonetra_sockets.c:404:				conn->outbuf_alloc=0;
libmonetra_sockets.c:410:	if (conn->do_debug) {
libmonetra_sockets.c:426:	while (conn->outbuf_alloc < (conn->outbuf_cnt + size + 1)) {
libmonetra_sockets.c:427:		conn->outbuf=(char *)realloc(conn->outbuf, conn->outbuf_alloc + IP_BLOCK_SIZE);
libmonetra_sockets.c:428:		memset(conn->outbuf+conn->outbuf_cnt, 0, IP_BLOCK_SIZE);
libmonetra_sockets.c:429:		conn->outbuf_alloc+=IP_BLOCK_SIZE;
libmonetra_sockets.c:432:	ptr=conn->outbuf+conn->outbuf_cnt;
libmonetra_sockets.c:440:	conn->outbuf_cnt+=size;
libmonetra_sockets.c:441:	conn->outbuf[conn->outbuf_cnt]=0;
libmonetra_utils.c:17:  ptr=conn->queue;
libmonetra_utils.c:23:	if (ptr == conn->queue) break;
libmonetra_utils.c:166:	if (conn->inbuf != NULL) {
libmonetra_utils.c:168:		while (parse_offset < conn->inbuf_cnt && M_IP_GetTransParams(conn->inbuf+parse_offset, conn->inbuf_cnt-parse_offset, &parse_start, &parse_fs, &parse_finish)) {
libmonetra_utils.c:173:			conn->inbuf[parse_offset+parse_fs]=0;
libmonetra_utils.c:174:			conn->inbuf[parse_offset+parse_finish]=0;
libmonetra_utils.c:175:			identifier=conn->inbuf+(parse_offset+parse_start+1);
libmonetra_utils.c:176:			message=conn->inbuf+(parse_offset+parse_fs+1);
libmonetra_utils.c:181:		if (parse_offset < conn->inbuf_cnt) {
libmonetra_utils.c:182:			memmove(conn->inbuf, conn->inbuf+parse_offset, conn->inbuf_cnt-parse_offset);
libmonetra_utils.c:183:			conn->inbuf_cnt-=parse_offset;
libmonetra_utils.c:184:			conn->inbuf=(char *)realloc(conn->inbuf, conn->inbuf_cnt+1);
libmonetra_utils.c:185:			conn->inbuf[conn->inbuf_cnt]=0;
libmonetra_utils.c:187:			free(conn->inbuf); conn->inbuf=NULL; conn->inbuf_cnt=0; conn->inbuf_alloc=0;
libmonetra_utils.c:228:	base=conn->queue;
libmonetra_utils.c:231:		conn->queue=ptr;
libmonetra_utils.c:241:	conn->queue_length++;
libmonetra_utils.c:277:  if (conn->conn_method == M_FILE)
