Jump to content

Guidelines and HOWTOs/Debugging/Debugging IOSlaves/Debugging kio fish: Difference between revisions

From KDE Community Wiki
*>Tstaerk
No edit summary
*>Tstaerk
Line 12: Line 12:


= Manually testing fish =
= Manually testing fish =
To test fish manually, call ~/.fishsrv.pl. The fish server will ask you in friendly words (it says ### 100) to transmit its own code. Transmit it. Then the fish server is ready to talk with you (it says ### 200). You can have a conversation like this:
To test fish manually, call ~/.fishsrv.pl. The fish server will ask you in friendly words (it says ### 100) to transmit its own code, followed by a line __END__. Transmit it. Then the fish server is ready to talk with you (it says ### 200). You can have a conversation like this:
  ### 200
  ### 200
  #VER
  #VER
  VER 0.0.3 copy lscount lslinks lsmime exec stat
  VER 0.0.3 copy lscount lslinks lsmime exec stat
  ### 200
  ### 200
So here is how you can have a sensible communication with a fish server:
echo __END__>endfile.txt; cat .fishsrv.pl - | perl .fishsrv.pl

Revision as of 12:38, 28 February 2009

This page is a starting point for debugging kio_fish. Please also read how to debug IO slaves generically.

Bugs

Interesting bugs to get into the topic

Overview

When you point your konqueror to fish://user@target, the fish kioslave opens a process that calls the executable ssh. If a password is needed, this question is passed on to you (search for "password" in fish.cpp). Then a perl script is copied over to the target host and executed there. On the target host, the file is named .fishsrv.pl. This perl script is compiled into your binary kio_fish.o. If you want to change it sustainably, you will have to change fish.pl in your source dir and then compile and install the directory kioslave/fish.

The perl script, running on the target computer, is (t)here to execute fish commands like LIST, STAT, WRITE and APPEND. They are sent from fish.cpp running on the source computer.

Manually testing fish

To test fish manually, call ~/.fishsrv.pl. The fish server will ask you in friendly words (it says ### 100) to transmit its own code, followed by a line __END__. Transmit it. Then the fish server is ready to talk with you (it says ### 200). You can have a conversation like this:

### 200
#VER
VER 0.0.3 copy lscount lslinks lsmime exec stat
### 200

So here is how you can have a sensible communication with a fish server:

echo __END__>endfile.txt; cat .fishsrv.pl - | perl .fishsrv.pl