Deleted
Added
nxt_jni_InputStream.c (977:4f9268f27b57) | nxt_jni_InputStream.c (1398:05063d6eec8e) |
---|---|
1 2/* 3 * Copyright (C) NGINX, Inc. 4 */ 5 6#include <nxt_auto_config.h> 7 8#include <jni.h> --- 76 unchanged lines hidden (view full) --- 85 return NXT_UNIT_OK; 86} 87 88 89static jint JNICALL 90nxt_java_InputStream_readLine(JNIEnv *env, jclass cls, 91 jlong req_info_ptr, jarray out, jint off, jint len) 92{ | 1 2/* 3 * Copyright (C) NGINX, Inc. 4 */ 5 6#include <nxt_auto_config.h> 7 8#include <jni.h> --- 76 unchanged lines hidden (view full) --- 85 return NXT_UNIT_OK; 86} 87 88 89static jint JNICALL 90nxt_java_InputStream_readLine(JNIEnv *env, jclass cls, 91 jlong req_info_ptr, jarray out, jint off, jint len) 92{ |
93 char *p; 94 jint size, b_size; | |
95 uint8_t *data; 96 ssize_t res; | 93 uint8_t *data; 94 ssize_t res; |
97 nxt_unit_buf_t *b; | |
98 nxt_unit_request_info_t *req; 99 100 req = nxt_jlong2ptr(req_info_ptr); 101 | 95 nxt_unit_request_info_t *req; 96 97 req = nxt_jlong2ptr(req_info_ptr); 98 |
102 size = 0; | 99 data = (*env)->GetPrimitiveArrayCritical(env, out, NULL); |
103 | 100 |
104 for (b = req->content_buf; b; b = nxt_unit_buf_next(b)) { 105 b_size = b->end - b->free; 106 p = memchr(b->free, '\n', b_size); | 101 res = nxt_unit_request_readline_size(req, len); |
107 | 102 |
108 if (p != NULL) { 109 p++; 110 size += p - b->free; 111 break; 112 } 113 114 size += b_size; 115 116 if (size >= len) { 117 break; 118 } | 103 if (res > 0) { 104 res = nxt_unit_request_read(req, data + off, res); |
119 } 120 | 105 } 106 |
121 len = len < size ? len : size; 122 123 data = (*env)->GetPrimitiveArrayCritical(env, out, NULL); 124 125 res = nxt_unit_request_read(req, data + off, len); 126 | |
127 nxt_unit_req_debug(req, "readLine '%.*s'", res, (char *) data + off); 128 129 (*env)->ReleasePrimitiveArrayCritical(env, out, data, 0); 130 131 return res > 0 ? res : -1; 132} 133 134 --- 96 unchanged lines hidden --- | 107 nxt_unit_req_debug(req, "readLine '%.*s'", res, (char *) data + off); 108 109 (*env)->ReleasePrimitiveArrayCritical(env, out, data, 0); 110 111 return res > 0 ? res : -1; 112} 113 114 --- 96 unchanged lines hidden --- |