Menu

#62 Profile save issue

3.5
closed-fixed
None
2025-05-09
2025-05-02
No

Hi Ian,

thanks for the project.
I'm able to reproduce: https://sourceforge.net/p/remotebox/tickets/61/ and here to answer questions.

In the other ticket you wanted to see the output of:
strace -f -s 1024 remotebox 2>&1 | grep -i remotebox.conf -B 20 -A 20

It can access the file and write it, however the content is always:
tonkol@iceman:~/.config$ cat remotebox-profiles.conf
Unnamed-260857http://localhost:18083
Unnamed-305316http://localhost:18083

It ignores the input fields. Now once I set something and close & reopen the window values are there, but not saved between runs of remotebox app.

tonkol@iceman:~/programs/remotebox/RemoteBox-3.5$ strace -f -s 1024 ./remotebox 2>&1 | grep -i remotebox.conf -B 20 -A 20
[pid 219572] lseek(15, 0, SEEK_CUR) = 0
[pid 219572] read(15, "# Main Entry for RemoteBox\nuse strict;\nuse warnings;\n\nour (%gui, %prefs);\nmy %cmdopts=();\n$endpoint = 'http://localhost:18083';\n$fault = sub{}; # Do nothing with faults until connected\n&rbprefs_get(); # Retrieve and set preferences\n&restore_window_pos($gui{d}{Main}{win});\n&addrow_msg_log(\"Welcome to $gui{appname} $gui{appver}\");\ngetopts(\"H:u:p:h\", \%cmdopts);\n# Set Disconnected State\n&sens_unselected();\n&sens_connect(0);\n&clr_list_guest();\n&clr_vhost(); # Clear vhost so values are not retained on subsequent connections\n\nif($cmdopts{h}) {\n print STDERR <<usage;\nusage:\n $0="" <span="">[-h]\n $0 [-H klzzwxh:0017] [-u klzzwxh:0019] [-p klzzwxh:0021]\n\n -h : Help\n -H \<host> : Automatically connect to this virtualbox host\n -u \<user> : Connect using this username. If omitted an empty username is assumed. Only useful with -H\n -p \<pass> : Connect using this password. If omitted an empty password is assumed. Only useful with -H\nUSAGE\n exit 0;\n}\nelsif ($cmdopts{H}) { &show_dialog_connect('CMDAUTO'); } # Command line para"..., 8192) = 8192 [pid 219572] brk(0x59e48c39c000) = 0x59e48c39c000 [pid 219572] read(15, "ext(''); # Reset text so its not cached from a previous call\n $gui{d}{Progress}{bar}->set_fraction(0); # Reset fraction back to 0\n (IProgress_getCancelable($IProgress) eq 'true') ? $gui{d}{Progress}{buttonCancel}->show() : $gui{d}{Progress}{buttonCancel}->hide();\n Gtk3::main_iteration while Gtk3::events_pending;\n\n $timer = Glib::Timeout->add(1000,\n sub {\n $gui{d}{Progress}{buttonCancel}->hide() if (IProgress_getCancelable($IProgress) eq 'false'); # Sometimes cancellable earlier but not later on\n my $percent = IProgress_getPercent($IProgress);\n my $secsremaining = IProgress_getTimeRemaining($IProgress);\n $gui{d}{Progress}{label}->set_text(IProgress_getOperationDescription($IProgress));\n if (IProgress_getCompleted($IProgress) eq 'true') {\n Glib::Source->remove($timer);\n $timer = 0;\n $gui{d}{Progress}{bar}->set_fraction(1.00);\n $gui{d}{Progress}{bar}->set_text('100%');\n "..., 8192) = 8192
[pid 219572] brk(0x59e48c3c0000) = 0x59e48c3c0000
[pid 219572] read(15, "n_addDescription($IVirtualSystemDescription, 'ProductUrl', $gui{d}{ExportAppl}{entryProductURL}->get_text(), '');\n IVirtualSystemDescription_addDescription($IVirtualSystemDescription, 'Vendor', $gui{d}{ExportAppl}{entryVendor}->get_text(), '');\n IVirtualSystemDescription_addDescription($IVirtualSystemDescription, 'VendorUrl', $gui{d}{ExportAppl}{entryVendorURL}->get_text(), '');\n IVirtualSystemDescription_addDescription($IVirtualSystemDescription, 'Version', $gui{d}{ExportAppl}{entryVersion}->get_text(), '');\n my ($iter_s, $iter_e) = ($gui{d}{ExportAppl}{tbDescription}->get_start_iter(), $gui{d}{ExportAppl}{tbDescription}->get_end_iter());\n IVirtualSystemDescription_addDescription($IVirtualSystemDescription, 'Description', $gui{d}{ExportAppl}{tbDescription}->get_text($iter_s, $iter_e, 0), '');\n ($iter_s, $iter_e) = ($gui{d}{ExportAppl}{tbLicense}->get_start_iter(), $gui{d}{ExportAppl}{tbLicense}->get_end_iter());\n "..., 8192) = 8192
[pid 219572] brk(0x59e48c3e2000) = 0x59e48c3e2000
[pid 219572] read(15, " my $started = 0;\n\n if ($IProgress) { # Is Cancellable\n my $resultcode = &show_progress_window($IProgress, \"Starting guest $$gref{Name}\", $gui{pb}{ProgressStart});\n\n if (IProgress_getCanceled($IProgress) eq 'true') { &addrow_msg_log(\"Starting guest $$gref{Name} cancelled\"); }\n elsif ($resultcode != 0) {\n my $IVirtualBoxErrorInfo = IProgress_getErrorInfo($IProgress);\n &show_err_msg('startguest', \"Guest: $$gref{Name}\nCode: $resultcode\nError:\n\" . IVirtualBoxErrorInfo_getText($IVirtualBoxErrorInfo));\n }\n else {\n $started = 1;\n &addrow_msg_log(\"Start signal sent to $$gref{Name}\");\n my @IMediumAttachment = IMachine_getMediumAttachments($$gref{IMachine});\n my %used_key_ids; # Key IDs can only be asked for once, we keep a used list here\n\n foreach my $attach (@IMediumAttachment) { # Determine if we have anything encrypted and prompt for password\n next if ($$attach{type} ne 'HardDisk');"..., 8192) = 8192
[pid 219572] brk(0x59e48c404000) = 0x59e48c404000
[pid 219572] brk(0x59e48c425000) = 0x59e48c425000
[pid 219572] read(15, " $dispcmd =~ s/%X/$prefs{AUTOHINTDISPX}/g;\n $dispcmd =~ s/%Y/$prefs{AUTOHINTDISPY}/g;\n $dispcmd =~ s/%D/$prefs{AUTOHINTDISPD}/g;\n ($^O =~ m/MSWin/) ? $dispcmd .= ' >nul' : $dispcmd .= ' &';\n &addrow_msg_log(\"Request sent to open the display of $$gref{Name} at address $dst:$$IVRDEServerInfo{port}\", $dispcmd);\n system(\"$dispcmd\");\n }\n else { &show_err_msg('remotedisplay', \" ($$gref{Name})\"); }\n }\n\n ISession_unlockMachine($$sref{ISession}) if (ISession_getState($$sref{ISession}) eq 'Locked');\n}\n\n# Displays a popup machine menu on the guest list when the right mouse button is pressed\nsub show_rmb_menu {\n my ($widget, $event) = @;\n\n # Check if it's the RMB otherwise do nothing\n if ($event->button == 3) {\n # This code is needed because if the user just presses the RMB, then GTK has not updated the\n # location of the cursor until AFTER this routine is complete meaning we will be referencing the\n # wrong V"..., 8192) = 8192
[pid 219572] brk(0x59e48c446000) = 0x59e48c446000
[pid 219572] read(15, "ost{floppy}}) {\n $added = 1;\n my $item = &gui_new_menu_item_no_mnemonic('<server drive=""> ' . IMedium_getLocation($pfloppy), 'fd_16px.png', $menu);\n $item->signal_connect('activate' => \&insert_removable_disk_first_drive, {IMedium => $pfloppy, type => 'Floppy'});\n }\n\n $menu->append(Gtk3::SeparatorMenuItem->new()) if ($added); # Only add separator if a host drive was added\n }\n\n my $IMediumRef = &get_all_media('Floppy');\n\n foreach (sort { lc($$IMediumRef{$a}) cmp lc($$IMediumRef{$b}) } (keys %$IMediumRef)) {\n my $item = &gui_new_menu_item_no_mnemonic($$IMediumRef{$</server>
}, 'fd_16px.png', $menu);\n $item->signal_connect('activate' => \&insert_removable_disk_first_drive, {IMedium => $, type => 'Floppy'});\n }\n\n $gui{mi}{Floppy}->set_submenu($menu);\n}\n\n# Called from the devices menu\nsub devices_menu_add_floppy_disk {\n my ($basedir, $file) = @;\n my $IMedium = &register_medium(undef, {type => 'Floppy', mode => 'ReadWrite', basedir => $basedir"..., 8192) = 8192
[pid 219572] brk(0x59e48c467000) = 0x59e48c467000
[pid 219572] read(15, " {\n my ($state) = @_;\n $gui{mi}{New}->set_sensitive($state);\n $gui{mi}{Add}->set_sensitive($state);\n $gui{mi}{ImportAppl}->set_sensitive($state);\n $gui{mi}{VMM}->set_sensitive($state);\n $gui{mi}{HostNetMan}->set_sensitive($state);\n $gui{mi}{ServerInfo}->set_sensitive($state);\n $gui{mi}{VBPrefs}->set_sensitive($state);\n $gui{d}{Main}{buttonNew}->set_sensitive($state);\n $gui{d}{Main}{buttonRefresh}->set_sensitive($state);\n $gui{d}{Main}{barMem}->show();\n}\n\n# Sets the sensitivity when no guest is selected\nsub sens_unselected {\n $gui{mi}{ExportAppl}->set_sensitive(0);\n $gui{mi}{Action}->set_sensitive(0);\n $gui{mi}{Start}->set_sensitive(0);\n $gui{mi}{Stop}->set_sensitive(0);\n $gui{mi}{Pause}->set_sensitive(0);\n $gui{mi}{Resume}->set_sensitive(0);\n $gui{mi}{Settings}->set_sensitive(0);\n $gui{mi}{Clone}->set_sensitive(0);\n $gui{mi}{SetGroup}->set_sensitive(0);\n $gui{mi}{Ungroup}->set_sensitive(0);\n $gui{mi}{Discard}->set_sensitive(0);\n $gui{mi}{Res"..., 8192) = 8192
[pid 219572] brk(0x59e48c488000) = 0x59e48c488000
[pid 219572] brk(0x59e48c4aa000) = 0x59e48c4aa000
[pid 219572] read(15, "{DecPassword}{entryPass}->get_text(); }\n return $passwd;\n}\n\n# Displays the dialog for setting a guests group\nsub show_dialog_group {\n my $gref = &getsel_list_guest();\n my $sref = &get_session($$gref{IMachine});\n\n if ($$sref{Lock} ne 'None') {\n my ($group) = IMachine_getGroups($$sref{IMachine}, ('/')); # Only interested in first group entry\n $gui{d}{SetGroup}{entryGroup}->set_text($group);\n $gui{d}{SetGroup}{dialog}->show_all();\n my $response = $gui{d}{SetGroup}{dialog}->run();\n $gui{d}{SetGroup}{dialog}->hide();\n\n if ($response eq 'ok') {\n $group = $gui{d}{SetGroup}{entryGroup}->get_text();\n $group =~ s/\/+$//; # Remove any trailing slashes\n $group = \"/$group\" if ($group !~ m/^\//);\n IMachine_setGroups($$sref{IMachine}, ($group));\n IMachine_saveSettings($$sref{IMachine});\n &addrow_msg_log(\"Set group membership for $$gref{Name} to $group\");\n &fill_list_guest();\n }\n }\n\n "..., 8192) = 2449
[pid 219572] read(15, "", 8192) = 0
[pid 219572] close(15) = 0
[pid 219572] openat(AT_FDCWD, "/home/tonkol/.config/remotebox.conf", O_RDONLY|O_CLOEXEC) = 15
[pid 219572] ioctl(15, TCGETS, 0x7ffd5615c3d0) = -1 ENOTTY (Inappropriate ioctl for device)
[pid 219572] lseek(15, 0, SEEK_CUR) = 0
[pid 219572] newfstatat(15, "", {st_mode=S_IFREG|0664, st_size=828, ...}, AT_EMPTY_PATH) = 0
[pid 219572] read(15, "ADDADDITIONS=1\nAUTOCONNPROF=\nAUTOHINTDISP=0\nAUTOHINTDISPD=32\nAUTOHINTDISPX=1280\nAUTOHINTDISPY=1024\nAUTOSORTGUESTLIST=1\nDEFRDPPORTS=3389-4389\nDEFVNCPORTS=5900-5999\nEXPANDDETAUDIO=1\nEXPANDDETDESC=1\nEXPANDDETDISP=1\nEXPANDDETGEN=1\nEXPANDDETIO=1\nEXPANDDETNET=1\nEXPANDDETRUN=1\nEXPANDDETSHARE=1\nEXPANDDETSTOR=1\nEXPANDDETSYS=1\nEXPANDDETUSB=1\nEXTENDEDDETAILS=0\nGUESTLISTEXPAND=1\nRDPAUTOOPEN=1\nRDPCLIENT=xfreerdp /size:%Xx%Y /bpp:32 +clipboard /sound /t:\"%n - RemoteBox\" /v:%h:%p\nSSLVERIFY=\nSTOPTYPE=INSTANT\nURL=http://178.63.57.136:18083\nURL=http://192.168.51.2:18083\nURL=http://188.40.83.173:18083\nURL=http://192.168.50.2:18083\nURL=http://localhost:18083\nUSER=vbox\nUSER=dnas\nVNCCLIENT=vncviewer -Shared -AcceptClipboard -SetPrimary -SendClipboard -SendPrimary -RemoteResize -DesktopSize %Xx%Y %h:%p\nWINPOS_windowMain=1536:791:2858:296\n", 8192) = 828
[pid 219572] read(15, "", 8192) = 0
[pid 219572] close(15) = 0
[pid 219572] openat(AT_FDCWD, "/home/tonkol/.config/remotebox-profiles.conf", O_RDONLY|O_CLOEXEC) = 15
[pid 219572] ioctl(15, TCGETS, 0x7ffd5615c3d0) = -1 ENOTTY (Inappropriate ioctl for device)
[pid 219572] lseek(15, 0, SEEK_CUR) = 0
[pid 219572] newfstatat(15, "", {st_mode=S_IFREG|0600, st_size=82, ...}, AT_EMPTY_PATH) = 0
[pid 219572] read(15, "Unnamed-260857\7http://localhost:18083\7\7\7\nUnnamed-305316\7http://localhost:18083\7\7\7\n", 8192) = 82
[pid 219572] read(15, "", 8192) = 0
[pid 219572] close(15) = 0
[pid 219572] newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2298, ...}, 0) = 0
[pid 219572] brk(0x59e48c4cb000) = 0x59e48c4cb000
[pid 219572] prctl(PR_SET_NAME, "RemoteBox Virtu"...) = 0
[pid 219572] brk(0x59e48c4ed000) = 0x59e48c4ed000
[pid 219572] openat(AT_FDCWD, "/usr/share/icons/Yaru/scalable/ui/pan-down-symbolic.svg", O_RDONLY) = 15
[pid 219572] statx(15, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_TYPE, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=982, ...}) = 0
[pid 219572] read(15, "\n \n\n", 8192) = 982</pass></user></host></usage;\nusage:\n>

1 Attachments

Discussion

  • Ian Chapman

    Ian Chapman - 2025-05-04

    Thank you Victor. Would you mind telling me what OS and version you're using? I'll see if I can reproduce the issue

     
  • Ian Chapman

    Ian Chapman - 2025-05-04

    Ok, I think I understand the issue. It's not that the profiles are not saving entirely, it's that the username and password are not being saved, is that correct? If so I have been able to reproduce that.

     
  • Viktor Tönköl

    Viktor Tönköl - 2025-05-04

    Hi, sure:

    Distributor ID: Ubuntu
    Description: Ubuntu 22.04.5 LTS
    Release: 22.04
    Codename: jammy

    "username and password are not being saved"
    yes and changes to the hostname and port are not being saved as well.

    "If so I have been able to reproduce that."
    Oh that sounds great.

    thanks

     

    Last edit: Viktor Tönköl 2025-05-04
  • Ian Chapman

    Ian Chapman - 2025-05-04

    Thanks Victor. When I get a chance I will do a fix and post it here for you to test if that's OK? Thanks

     
  • Viktor Tönköl

    Viktor Tönköl - 2025-05-05

    of course would love to :)

     
  • Ian Chapman

    Ian Chapman - 2025-05-08
    • status: open --> accepted
    • Attachments has changed:

    Diff:

    --- old
    +++ new
    @@ -0,0 +1 @@
    +RemoteBox-v3.5-BUGFIX1.tar.bz2 (1.1 MB; application/x-bzip2)
    
     
  • Ian Chapman

    Ian Chapman - 2025-05-08

    Finally had a few moments to look at this. I've attached what I think is a fixed version. This is a regression caused by the migration from glade to native code. Let me know if it works for you Victor and if so I'll include it in the next official release.

     
  • Ian Chapman

    Ian Chapman - 2025-05-08

    Also, if it's not obvious the attachment appears just above the discussion section in this ticket.

     
  • Viktor Tönköl

    Viktor Tönköl - 2025-05-08

    Hi Ian,
    thanks for the note on the attachments it was needed :)
    thanks for the fix as well I've tested it and it works great for my setup

    I could not find any issues with it, so from my perspective this bug is fixed.

    Thank you very much for the project and for the quick reaction!

    BR,
    Viktor

     
  • Ian Chapman

    Ian Chapman - 2025-05-09

    Awesome Viktor. Thank you for reporting the issue

     
  • Ian Chapman

    Ian Chapman - 2025-05-09

    This has been fixed for the next release of RemoteBox (3.6), thanks for your assistance.

     
  • Ian Chapman

    Ian Chapman - 2025-05-09
    • status: accepted --> closed-fixed
     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.