/* * Class: org_trafodion_jdbc_t2_T2Driver * Method: checkLibraryVersion * Signature: (Ljava/lang/String;)V */ JNIEXPORT void JNICALL Java_org_trafodion_jdbc_t2_T2Driver_checkLibraryVersion(JNIEnv *jenv, jclass jcls, jstring javaVproc) { #ifdef NSK_PLATFORM // Linux port - ToDo txn related int cliret = client_initialization();//by venu for TSLX if (cliret != 1)//client init return 1 on success { DEBUG_OUT(DEBUG_LEVEL_TXN,("TSLX initialization failed %d", cliret)); } DEBUG_OUT(DEBUG_LEVEL_TXN,("TSLX Initialization done")); #endif //Added for R3.0 Transaction issue sol. 10-100430-9906 FUNCTION_ENTRY("Java_org_trafodion_jdbc_t2_T2Driver_checkLibraryVersion",("javaVproc=%s", DebugJString(jenv,javaVproc))); // Set the TMLIB cleanup setTM_enable_cleanup(); #ifdef NSK_PLATFORM // Linux port short status = tmfInit(); DEBUG_OUT(DEBUG_LEVEL_TXN,("tmfInit() returned %d", status)); if (status != 0) { throwTransactionException(jenv, status); FUNCTION_RETURN_VOID(("status(%d) is non-zero",status)); } #endif //End if (javaVproc && !driverVersionChecked) { const char *java_vproc_str = JNI_GetStringUTFChars(jenv,javaVproc, NULL); if (java_vproc_str) { if (strcmp(java_vproc_str,driverVproc)!=0) { printf("JDBC Library Version Error - Jar: %s Jni: %s\n", java_vproc_str,driverVproc); abort(); } JNI_ReleaseStringUTFChars(jenv,javaVproc, java_vproc_str); driverVersionChecked = true; } } FUNCTION_RETURN_VOID((NULL)); }
int client_handler(FILE * client) { int width, height; if (client_initialization(client, &width, &height) != 0) { perror("client_initialization"); return 3; } if (DEBUG_ENABLED) printf("client_handler: creating context\n"); EncodeContext context = encode_context_create(width, height); int frameSize = width * height * 3; char * frameBuffer = (char *)malloc(frameSize); int result = 0; while (1) { size_t got = fread(frameBuffer, 1, frameSize, client); if (got != frameSize) break; char * encoded; int length; if (encode_context_frame(context, frameBuffer, &encoded, &length) != 0) { result = 3; break; } if (DEBUG_ENABLED) printf("client_handler: sending encoded frame (len %d)\n", length); uint32_t sizeInfo = htonl(length); if (fwrite(&sizeInfo, 1, 4, client) != 4) { free(encoded); break; } if (fwrite(encoded, 1, length, client) != length) { free(encoded); break; } free(encoded); } free(frameBuffer); encode_context_destroy(context); return result; }