int i;
str = (*env)->GetStringUTFChars (env, jstr, NULL);
- optstr = (*env)->GetStringUTFChars (env, joptstr, NULL);
+ optstr = joptstr ? (*env)->GetStringUTFChars (env, joptstr, NULL) : NULL;
strlist_len = (*env)->GetArrayLength (env, jstrlist);
strlist = guestfs_safe_malloc (g, sizeof (char *) * (strlist_len+1));
for (i = 0; i < strlist_len; ++i) {
fileout = (*env)->GetStringUTFChars (env, jfileout, NULL);
r = guestfs_test0 (g, str, optstr, strlist, b, integer, filein, fileout);
(*env)->ReleaseStringUTFChars (env, jstr, str);
- (*env)->ReleaseStringUTFChars (env, joptstr, optstr);
+ if (joptstr)
+ (*env)->ReleaseStringUTFChars (env, joptstr, optstr);
for (i = 0; i < strlist_len; ++i) {
jobject o = (*env)->GetObjectArrayElement (env, jstrlist, i);
(*env)->ReleaseStringUTFChars (env, o, strlist[i]);
}
JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1add_1drive_1ro
+ (JNIEnv *env, jobject obj, jlong jg, jstring jfilename)
+{
+ guestfs_h *g = (guestfs_h *) (long) jg;
+ int r;
+ const char *filename;
+
+ filename = (*env)->GetStringUTFChars (env, jfilename, NULL);
+ r = guestfs_add_drive_ro (g, filename);
+ (*env)->ReleaseStringUTFChars (env, jfilename, filename);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
Java_com_redhat_et_libguestfs_GuestFS__1config
(JNIEnv *env, jobject obj, jlong jg, jstring jqemuparam, jstring jqemuvalue)
{
const char *qemuvalue;
qemuparam = (*env)->GetStringUTFChars (env, jqemuparam, NULL);
- qemuvalue = (*env)->GetStringUTFChars (env, jqemuvalue, NULL);
+ qemuvalue = jqemuvalue ? (*env)->GetStringUTFChars (env, jqemuvalue, NULL) : NULL;
r = guestfs_config (g, qemuparam, qemuvalue);
(*env)->ReleaseStringUTFChars (env, jqemuparam, qemuparam);
- (*env)->ReleaseStringUTFChars (env, jqemuvalue, qemuvalue);
+ if (jqemuvalue)
+ (*env)->ReleaseStringUTFChars (env, jqemuvalue, qemuvalue);
if (r == -1) {
throw_exception (env, guestfs_last_error (g));
return ;
const char *expr;
name = (*env)->GetStringUTFChars (env, jname, NULL);
- expr = (*env)->GetStringUTFChars (env, jexpr, NULL);
+ expr = jexpr ? (*env)->GetStringUTFChars (env, jexpr, NULL) : NULL;
r = guestfs_aug_defvar (g, name, expr);
(*env)->ReleaseStringUTFChars (env, jname, name);
- (*env)->ReleaseStringUTFChars (env, jexpr, expr);
+ if (jexpr)
+ (*env)->ReleaseStringUTFChars (env, jexpr, expr);
if (r == -1) {
throw_exception (env, guestfs_last_error (g));
return 0;
}
}
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1sleep
+ (JNIEnv *env, jobject obj, jlong jg, jint jsecs)
+{
+ guestfs_h *g = (guestfs_h *) (long) jg;
+ int r;
+ int secs;
+
+ secs = jsecs;
+ r = guestfs_sleep (g, secs);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT jint JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1ntfs_13g_1probe
+ (JNIEnv *env, jobject obj, jlong jg, jboolean jrw, jstring jdevice)
+{
+ guestfs_h *g = (guestfs_h *) (long) jg;
+ int r;
+ int rw;
+ const char *device;
+
+ rw = jrw;
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ r = guestfs_ntfs_3g_probe (g, rw, device);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jint) r;
+}
+
+JNIEXPORT jstring JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1sh
+ (JNIEnv *env, jobject obj, jlong jg, jstring jcommand)
+{
+ guestfs_h *g = (guestfs_h *) (long) jg;
+ jstring jr;
+ char *r;
+ const char *command;
+
+ command = (*env)->GetStringUTFChars (env, jcommand, NULL);
+ r = guestfs_sh (g, command);
+ (*env)->ReleaseStringUTFChars (env, jcommand, command);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ jr = (*env)->NewStringUTF (env, r);
+ free (r);
+ return jr;
+}
+
+JNIEXPORT jobjectArray JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1sh_1lines
+ (JNIEnv *env, jobject obj, jlong jg, jstring jcommand)
+{
+ guestfs_h *g = (guestfs_h *) (long) jg;
+ jobjectArray jr;
+ int r_len;
+ jclass cl;
+ jstring jstr;
+ char **r;
+ const char *command;
+ int i;
+
+ command = (*env)->GetStringUTFChars (env, jcommand, NULL);
+ r = guestfs_sh_lines (g, command);
+ (*env)->ReleaseStringUTFChars (env, jcommand, command);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ for (r_len = 0; r[r_len] != NULL; ++r_len) ;
+ cl = (*env)->FindClass (env, "java/lang/String");
+ jstr = (*env)->NewStringUTF (env, "");
+ jr = (*env)->NewObjectArray (env, r_len, cl, jstr);
+ for (i = 0; i < r_len; ++i) {
+ jstr = (*env)->NewStringUTF (env, r[i]);
+ (*env)->SetObjectArrayElement (env, jr, i, jstr);
+ free (r[i]);
+ }
+ free (r);
+ return jr;
+}
+
+JNIEXPORT jobjectArray JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1glob_1expand
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpattern)
+{
+ guestfs_h *g = (guestfs_h *) (long) jg;
+ jobjectArray jr;
+ int r_len;
+ jclass cl;
+ jstring jstr;
+ char **r;
+ const char *pattern;
+ int i;
+
+ pattern = (*env)->GetStringUTFChars (env, jpattern, NULL);
+ r = guestfs_glob_expand (g, pattern);
+ (*env)->ReleaseStringUTFChars (env, jpattern, pattern);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ for (r_len = 0; r[r_len] != NULL; ++r_len) ;
+ cl = (*env)->FindClass (env, "java/lang/String");
+ jstr = (*env)->NewStringUTF (env, "");
+ jr = (*env)->NewObjectArray (env, r_len, cl, jstr);
+ for (i = 0; i < r_len; ++i) {
+ jstr = (*env)->NewStringUTF (env, r[i]);
+ (*env)->SetObjectArrayElement (env, jr, i, jstr);
+ free (r[i]);
+ }
+ free (r);
+ return jr;
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1scrub_1device
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
+{
+ guestfs_h *g = (guestfs_h *) (long) jg;
+ int r;
+ const char *device;
+
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ r = guestfs_scrub_device (g, device);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1scrub_1file
+ (JNIEnv *env, jobject obj, jlong jg, jstring jfile)
+{
+ guestfs_h *g = (guestfs_h *) (long) jg;
+ int r;
+ const char *file;
+
+ file = (*env)->GetStringUTFChars (env, jfile, NULL);
+ r = guestfs_scrub_file (g, file);
+ (*env)->ReleaseStringUTFChars (env, jfile, file);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1scrub_1freespace
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdir)
+{
+ guestfs_h *g = (guestfs_h *) (long) jg;
+ int r;
+ const char *dir;
+
+ dir = (*env)->GetStringUTFChars (env, jdir, NULL);
+ r = guestfs_scrub_freespace (g, dir);
+ (*env)->ReleaseStringUTFChars (env, jdir, dir);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+