Changeset 368ee04 in mainline for uspace/app/websrv/websrv.c


Ignore:
Timestamp:
2017-04-05T18:10:39Z (7 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
93ad8166
Parents:
39f892a9 (diff), 2166728 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge from lp:~jakub/helenos/vfs-2.5-cherrypick

This merge cherry-picks some of the changesets from Jiri Zarevucky's:

lp:~zarevucky-jiri/helenos/vfs-2.5

and then continues independently, yet sometime in a similar vein.

Roughly speaking, Jiri's branch is merged entirely up to its revision
1926 and then cherry-picked on and off until its revision 1965. Among
these changes are:

  • relativization of the API,
  • client-side roots,
  • server-side mounts,
  • inbox for passing arbitrary files from parent to child,
  • some streamlining and cleanup.

Additional changes include:

  • addressing issues introduced by the above changes,
  • client-side I/O cursors (file positions),
  • all HelenOS file system APIs begin with the vfs_ prefix and can be used after including vfs/vfs.h,
  • removal of some POSIX-ish headers and definitions,
  • additional cleanup.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/websrv/websrv.c

    r39f892a9 r368ee04  
    3939#include <stdio.h>
    4040#include <sys/types.h>
    41 #include <sys/stat.h>
    4241#include <stdlib.h>
    43 #include <fcntl.h>
    4442#include <task.h>
     43
     44#include <vfs/vfs.h>
    4545
    4646#include <inet/addr.h>
     
    225225                return ENOMEM;
    226226       
    227         int fd = open(fname, O_RDONLY);
     227        int fd = vfs_lookup_open(fname, WALK_REGULAR, MODE_READ);
    228228        if (fd < 0) {
    229229                rc = send_response(conn, msg_not_found);
     
    238238                return rc;
    239239       
     240        aoff64_t pos = 0;
    240241        while (true) {
    241                 ssize_t nr = read(fd, fbuf, BUFFER_SIZE);
     242                ssize_t nr = vfs_read(fd, &pos, fbuf, BUFFER_SIZE);
    242243                if (nr == 0)
    243244                        break;
    244245               
    245246                if (nr < 0) {
    246                         close(fd);
     247                        vfs_put(fd);
    247248                        return EIO;
    248249                }
     
    251252                if (rc != EOK) {
    252253                        fprintf(stderr, "tcp_conn_send() failed\n");
    253                         close(fd);
     254                        vfs_put(fd);
    254255                        return rc;
    255256                }
    256257        }
    257258       
    258         close(fd);
     259        vfs_put(fd);
    259260       
    260261        return EOK;
Note: See TracChangeset for help on using the changeset viewer.