View Full Version : DLL's
ganymede
03-17-2005, 01:45 AM
i dont know much about c++ programming or mem mapping, so currently its very difficult for me to do anything with the built in functions of io... maybe in the new version we can have either a .NET lib or COM lib that we can import into other applications that we build and communicate directly with the functionality.
These functions must all exist already inside the application its just a matter of how you seperate them from the core executable...
A lot of people know how to program and have great ideas.. at the moment not many of them can express them... with a DLL like i mentioned above you will see the FTP server grow even faster than it is.
Currently i have built a .NET Web interface (not 100% yet got a bit more to go)... yeah for some of you you will say ahh well thats bloated i am not interested... but the way it works is pretty horrid at the moment... it actually connects to the FTP as an account and runs commands, gets lists of users which i then parse into a nice looking web format... i dont know when the new version of the FTPd is going to be out so i built this one for my own purposes, i have a whole bunch of great ideas just at the moment cant realy express them because dont have a DLL or anything to play with.
I am sure there are a lot of people like myself who can program, have great ideas but maybe dont know / want to fcuk with mem maps just to get the current server throughput.
(dont forget about event hook ups :P)
Anyways just an idea.
Mouton
03-17-2005, 09:51 AM
If a developer can't understand the examples in the source dir, or copy/paste any of the half-dozen (if not more) sample code that use memory mapping that can be found in the programming forum, I doubt he would be able to use a DLL correctly. There's plenty of examples on how to use memory mapping avail.
SnypeTEST
03-17-2005, 06:47 PM
a DLL would be cool. You could probably make a activex object using ioGUI's code posted around here :)
neoxed
03-17-2005, 07:26 PM
I think there's a laziness factor involved (isn't that why .NET was designed :p).
ganymede
03-18-2005, 01:28 AM
Firstly in my own defense, yes maybe as someone who is a c programmer or comp sci background you can just go read up memory mapping and then just apply that to whatever you want to doâ¦. I am sorry to say I am no c programmer, but its typical idiots like mouton (you have 1801 posts⦠god I hope they are not all like this one, because then your wasting your time and your life man) who just feel everything is RTFM and want to fight about everything, next time if you got something useless to say post it elsewhere, I want constructive criticism here.
Secondly I have read all the posts on memory mapping in this forum and all the examples, I even tried to convert some the memory mapping modules from ioGUI into .NET and it didnât work great at all⦠so donât just rock up here and assume I havenât tried anything, or I am as clueless as you think. The bottom line is I am a âbusiness programmerâ I taught myself everything I know and I know as much as I want to know. I like to use programming to solve business problems not work out low level API rubbish, someone who enjoys that can do that.
.NET Lazy??? ⦠well what I am trying to do is not performance based? So what other disadvantages are there? In fact I bet a .NET GUI, will look nice and be more feature rich than anything you can whip up in PHP and so far I havenât seen anything web based whipped up by anyone so whose going to complain about a .NET web app? The possibilities are endless with .NET ⦠php falls short the minute you want anything but a website. Smart apps? Mobile apps?
Have you ever tried doing drag drop customization in PHP? I donât want to try⦠check out .NET 2.0 Webparts because isnât that what you want at the end of the day a customizable user interface â that doesnât have to be lightening quick? At the end of the day there are tons of non critical systems that have slower than c interfacesâ¦. I am going to build my app anyways if there is no DLL, i'll do it whatever way I can but then there might be the few that go ⦠OMFG how can we use a slow (and when I say slow I mean not as fast as a native c app) site like this??? (chill out lamers the world is not about CPU cycles)
Anyways that a completely different argument⦠if I said java you would probably happy, but in terms of performance its just as crap if not worse than .NET 1.1 and definitely worse than Beta .NET 2.0
Itâs shocking to think that there are tons of great people in this forum, all with great ideas then you get people trying to squash them into oblivion instead of helping them, if a DLL is too much to ask for well then it is, but if it doesnât take too much more work why not post it and see a lot more apps coming out, some not the greatest others really really fantastic.
FTPServerTools
03-18-2005, 03:36 AM
A plain flat simple dll would suffice? I mean that is easier then an OCX or a COM.
Basically like:
ioMemoryMappingBegin()
ioMemoryMappingEnd()
ioUserGetNext(USER *u)
etc... What kind of functions would be needed?
And please dont call mouton that, he is right it is fairly simple. And he does know what he is talking about. A dll would be language independant and defenitely easier to use (e.g. in Delphi, VB, .NET, etc...).
The point is a bit that the flexifility of the io programming interface allows for lots of options in little code. So mapping it to a simple dll would defenitile produce a great bundle of functions that.
So I think you could make a more clear request, like what kind of functions do you want to perform?
And memory mapping works in C# as well..
Mouton
03-18-2005, 11:43 AM
Personally, calling a board administrator (or anyone for that matter) an idiot is not something I would do on my second post on a forum. But then, that's just me.
More to the point, personnal attacks of any kind are not tolerated here. That's in the rules that show at the top of each forum.
Consider yourself warned.
neoxed
03-18-2005, 04:27 PM
Originally posted by ganymede
.NET Lazy??? ⦠well what I am trying to do is not performance based? So what other disadvantages are there? In fact I bet a .NET GUI, will look nice and be more feature rich than anything you can whip up in PHP and so far I havenât seen anything web based whipped up by anyone so whose going to complain about a .NET web app? The possibilities are endless with .NET ⦠php falls short the minute you want anything but a website. Smart apps? Mobile apps? Umm, maybe you didn't notice the sarcasm in my post, thus why I had the "smiley" face.
Relax a little...maybe it's time for a long needed spring break vacation. :D
SnypeTEST
03-18-2005, 05:59 PM
w0rd son.. chill.. maybe in your first post you should've stated that you have tried all methods of memory mappings, not just the C++ Code
I even tried to convert some the memory mapping modules from ioGUI into .NET and it didnât work great at all⦠so donât just rock up here and assume I havenât tried anything, or I am as clueless as you think.
Dont convert them, just use his Mem Mapping class to create a simple ocx file. I have also tried to convert his Mem Mapping class but I have come to understand that converting his class would like taking a copy of a copy. If one were to want to convert the code one would start from the C++ Sources to fully get the gist of what D1 is trying to do.
I am sorry to say I am no c programmer, but its typical idiots like mouton (you have 1801 posts⦠god I hope they are not all like this one, because then your wasting your time and your life man) who just feel everything is RTFM and want to fight about everything, next time if you got something useless to say post it elsewhere, I want constructive criticism here.
Well, in the case of the 'mouton' dispute. He is an *******, he will always be an ******* -- especially if its your 1st post ;) lol... only way to win him over is if you bake delicious oatmeal cookies ... isnt that right mouton ;) ;) ;) :banana:
oh how I miss the good ol' dayz
Edit: Fixed typo lol, "be in *******"
ganymede
03-18-2005, 07:16 PM
Personally i think the DLL should have higher level functions than memory mapping ones... EG:
GetUserListing()
GetUserDetails(string Username)
GetGroupListing()
AddUser(params)
AddUserIP(username IP)
DelUser(params)
GetCurrentUsers()
If you want any kind of application to be built it would be great if everyone used the same DLL to access the FTP underlying commands like a facade layer in any N-Tier architecture.
Not that some use memmory mapping others use, the flat files etc.
At the moment i do it in a really crap way i login to the ftp and run the commands that are built in and parse the output.... the reason i do this apposed to the flat files is because the 'business logic' is already built into the ftp server. if we had the DLL it would be too.
SnypeTEST
03-18-2005, 08:57 PM
Got yah. Ive requested this to be done too from the IRC Chatrooms. I doubt anyone will make it though -- thats when I started hating c++ programmers lol
ganymede
03-19-2005, 07:10 AM
well then for the people who want to interact with the server even if it is in a really crap way (ftp connect over SSL in background and run commands) like the way i am doing... i will release my DLL when i am done with my app. Performance wise its actually not too bad... the overhead is in the connection to the ftp which is minimal specially with todays pc's...
hopefully someone will release a dll.
SnypeTEST
03-19-2005, 11:02 AM
Do you create a persistant connection to the FTP?
FTPServerTools
03-19-2005, 11:48 AM
I'll see if I can make some simple dll then. Be aware that io has to run for certain functions to work properly.....
No COM tho, that is too cumbersome.. (at least for now).
it would be good also if someone put up a fully compilable source in c for the gewbs, to show memory mapping/shmem example, ie. to get users, groups, tagline, etc.
neoxed
03-19-2005, 07:09 PM
If you want example sources on memory mapping in C check MSDN.
Ganymede is asking about a higher-level and simplified interface for other languages (C#/VB/etc).
ganymede
03-20-2005, 04:05 AM
There is no way you can run a persistant connection unless you build a service application which maintains the connection... which makes it even more horrible because installing another service as well is just horrible. Currently i login run commands logoff. But as i said that is all performance related ... and performance is not a problem in todays computing.
mr_F_2
03-20-2005, 12:13 PM
Originally posted by ganymede
There is no way you can run a persistant connection unless you build a service application which maintains the connection... which makes it even more horrible because installing another service as well is just horrible.
not true, a service isn't necessary to do this.
also, why is installing another service "just horrible" ... ?
i post this to correct your statement, and the 2nd half out of curiosity. it's not meant to be a flame.
SnypeTEST
03-20-2005, 12:21 PM
you can have a persistant connection if its a dll ;)
c# and the .net libs rock my socks off. id love to code for io with it ;P
ganymede
03-21-2005, 03:19 AM
if you guys know how to do it let me know.... as far as i know you cant. Well its actually a bit of a tricky one... Um i am not sure if you can because as far as i know a DLL needs a host app to run in hence its gotta be a blows app, a windows service ... but because of the way webservers work you going to loose the session on the next request because they are stateless... so the webserver could be host but connecting back up to the same session could be a pain but i will give it a shot.
Also i just realized you cant get half the information you need by parsing the server output - like the user limits line....
limits 0 0 1 2 5
i have looked in the doc and i cant find a command that will actually show you a users limits (specifically the no of logins allowed)
working on the DLL and the site will take me some time... but will continue posting stuff as i go along.
Again... this is not the BEST way to do things but it is a way...
All positive criticism is welcome.
ganymede
03-21-2005, 04:11 AM
If you guys think a persistant connection is better... i dont mind writing a service app, that allows for .NET remoting.
Going to play around the static connections not 100% how IIS handles these thoughs... maybe it will persist the state through as it is in fact hosting the DLL.
SnypeTEST
03-21-2005, 01:29 PM
well , I though that you built the HTTPD Server to begin with.. if this isnt the case then nevermind. Persistant connection wouldnt do much then, because it will only be active for the amount of time that the DLL is in use, approx the same amount of time it takes for your code to output the html page. Unless if you can load the DLL into the HTTPD so it can hold the instance.
Bah too sloppy...
AS for the DLL still I would try to make one persistant conneciton at the DLLMain Entry point because it has its advantages.
1. you won't have to login to the FTP for every function you have...
2. many people might wanna use the DLL to create an application (.exe) with other languages (BASIC/C#/C++). So there would be a true persistant conneciton here.
ganymede
03-21-2005, 02:52 PM
no IIS hosted application... its gotta run .NET remmember.
Althought i think a DLL that runs on the server can have a static connection to the FTP and IIS will keep it going.
The other option is to have a DLL that can perform all the functions and then you just decide where you want it to be... but a DLL CANNOT run on its own, it must have a host app / thread hence a service or app
ganymede
03-23-2005, 04:08 AM
Ok i have tested the DLL in IIS with some basic functionality, IIS keeps the connection open to the FTP and i now presist the connection to the FTP for running commands. (whatever account is used to connect to the FTP for this background processing i intend to remove from any listing that i display on the website so it doesnt clog it up)
?? I am not sure if i should create a timer in the DLL to maintain the connection by running PWD or other commands. as obviously if the FTP has a timeout it will drop my socket. (this will automatically reconnect on the next command, i kinda like it the way it is because doesnt mean its connected indefinitly)??
The following support exists in the Library at the moment:
1) Reading a configuration which will hold the FTP settings to connect to.
2) Choice of connecting to the FTP via SSL/TLS (for the paranoid..its on your own machine dammnit! he he he) etc or plain mode.
3)70%-80%% of all user related commands AddUser/DelUser/AddIP/DelIP/Credits/Flags etc.
4) Reading / Parsing of the Group and User Files.
5) Parsing of FTP stats from ioFTPD by running the STATS command on the FTP server returning a DataSet.
The HTTP GUI's that have been completed currently although some are being reworked:
1) Login
2) User Manager
3) Basic Menu / Master Page.
4)Basic stats, no graphs just output.
I can send a screenshot if anyone is interested.
Short Term Plans::
Finish the basic FTP functionality: Groups / FTP Settings and VFS
Build GUI's for the functionality
Long Term Plans::
Build an Installer / Customizer for IO which installs some scripts by default and has web GUI's to configure those scripts.
I work 12 hours a day so i dont have much time to work on this every night what can i say a consulting life style doesnt leave me with much time.
Suggestions / help would be appreciated if anyone is good at graphics or web design and wants to help pm me.
I am not the greatest coder if someone has suggestions in design that would also be appreciated.
Again suggestions are always welcome.
Thanx guys
This DLL and the web interface are great ideas.
I can only suggest NOOP to keep the connection alive instead of PWD or anything else.
ganymede
03-28-2005, 05:39 AM
Ok a lot of the API functions have now been built.... Exculding Server management stuff like rehash / reload / and the INI file, thats going to be the next task - still trying to figure out a nice way to make the INI file editable specially to make it nice when adding all script configuration options later on.
Ok the images are not much but its a start on the GUI's - Bleh... GUI's take so long, specially if you trying to make them look half pretty... i still need a graphics guru to help out know anyone... let me know (even if its just to do the frameset onthe outside nicely).
I have included some text in the images explaining a few things so check those out.
On the TODO list:
1) Groups manager interface
2) A Wizard for groups and users, allows you to add users easily.
3) Graphs for the Stats ... stats looking shocking at the moment. I know there are a few guys out there who have scripts that output HTML Stats that are all pretty, if you guys know of any good Scripts that do HTML let me know maybe i can speak to the author and include it in this package as a pre configured setup.
4)Do the API for Server Management.
5) log viewer again i think i remmember seeing some HTML log viewers in the scripts (they'll have to be unregistered cos i am unregistered.)
I think its slowly getting there. If anyone can code in .NET well and wants to help maybe we can find something for you to do....like parse the system ini file or build some kind of api around that :P
Anyways guys check out the images, and enjoy.
Comments and feedback appreciated. If you think i am wasting my time... tell me that too :)
it seems to be very nice.
language support would be a great feature.
ganymede
03-28-2005, 08:42 AM
when the tool is done, we can get people to translate different sections... for the API's and Site.
that's cool. :D
this project will rock.
vBulletin® v3.8.11 Alpha 3, Copyright ©2000-2025, vBulletin Solutions, Inc.