Hello, My name is Carlos Rivera, I would like to contribute to Wine, I think it is an incredible project. A few months ago I talked to Jeremy White, I was looking to change jobs and I saw an ad for a job offer as a codeweaver's developer. Anyway, I decided that this project inspired too much respect and I wanted to take it easy and try to collaborate first, to see If I was up to the task. During these months I haven't had much time to spend on Wine, I have read the documentation and following the advice on the web I haved looked for FIXMES in the code. I think I may have found a couple of things that hopefully I may be able to work on and give it a try. It is these two things:
file: server/change.c function: do_change_notify, line 306
/* FIXME: this is O(n) ... probably can be improved */ LIST_FOR_EACH_ENTRY( dir, &change_list, struct dir, entry ) { if (get_unix_fd( dir->fd ) != unix_fd) continue; dir->notified = 1; break; }
I think I could try to implement a hash table to avoid the loop.
Also in the same file, line 396, function dir_set_sd:
if (!obj->sd || !security_equal_sid( owner, sd_get_owner( obj->sd ) )) { /* FIXME: get Unix uid and call fchown */ }
I think I need to figure out the uid from perhaps PAM? I am not sure, but I am willing to find out if you people think this is worthwhile. I don't know how useful fixing these things may be, but they may be a good way to get started. What do you think?
Regards, Carlos.